@echo off
:: 设置代码页为UTF-8以支持中文输出
chcp 65001 >nul

setlocal

:: 定义配置文件路径
set "DEBUG_CONFIG=build_opt\win\build-profile-debug.json5"
set "RELEASE_CONFIG=build_opt\win\build-profile-release.json5"
set "TARGET_CONFIG=build-profile.json5"

:: 提示用户选择输入
echo 请选择构建模式:
echo 1 - 调试模式 (复制调试配置)
echo 2 - 发布模式 (复制发布配置)
echo 3 - 使用发布配置编译后切换回调试模式
set /p choice="请输入您的选择 (1/2/3): "

if "%choice%"=="1" goto :Debug
if "%choice%"=="2" goto :Release
if "%choice%"=="3" goto :BuildAndCompile

:Debug
call :CopyConfig "%DEBUG_CONFIG%" "%TARGET_CONFIG%"
goto :EOF

:Release
call :CopyConfig "%RELEASE_CONFIG%" "%TARGET_CONFIG%"
goto :EOF

:BuildAndCompile
call :CopyConfig "%RELEASE_CONFIG%" "%TARGET_CONFIG%"
if %errorlevel% neq 0 (
    echo 复制发布配置失败.
    goto :EOF
) else (
    echo 已设置为发布配置.
)

:: 执行编译命令
echo 正在执行编译...
hvigorw --mode project -p product=default assembleApp --analyze=normal --parallel --incremental --daemon
if %errorlevel% neq 0 (
    echo 编译失败.
    pause
    goto :EOF
)

:: 确认编译成功后等待1秒再切换回调试配置
echo 编译完成, 等待1秒后恢复调试配置...
timeout /t 1 /nobreak >nul
call :CopyConfig "%DEBUG_CONFIG%" "%TARGET_CONFIG%"
if %errorlevel% neq 0 (
    echo 恢复调试配置失败.
) else (
    echo 已恢复为调试配置.
)

goto :EOF

:CopyConfig
copy /y "%~1" "%~2"
if %errorlevel% neq 0 (
    echo 复制配置文件失败: %~1 到 %~2
    exit /b 1
) else (
    echo 成功复制配置文件: %~1 到 %~2
    exit /b 0
)

:EOF
endlocal